--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
docs/crypto_zh-cn.html 586e7c873ad4755fefcd1688ccfcc7cdaaca7e7c (586e7c87) Text, 3.66 KB
Tff7b72<!doctype html>
Tb4b4b4<Tff7b72htmlTb4b4b4>
Tb4b4b4<Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72link Te6edf3relTff7b72=Ta5d6ff"stylesheet" Te6edf3hrefTff7b72=Ta5d6ff"css/water.css?v=6"Tb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3charsetTff7b72=Ta5d6ff"utf-8"Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72titleTb4b4b4>Reticulum NetworkTb4b4b4<Tb4b4b4/Tff7b72titleTb4b4b4>
Tb4b4b4<Tff7b72meta Te6edf3nameTff7b72=Ta5d6ff"viewport" Te6edf3contentTff7b72=Ta5d6ff"width=device-width, initial-scale=1.0"Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72headTb4b4b4>
Tb4b4b4<Tff7b72bodyTb4b4b4>
Tb4b4b4<Tff7b72centerTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"top_menu lang_menu"Tb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_de.html"Tb4b4b4>DeutschTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto.html"Tb4b4b4>EnglishTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_es.html"Tb4b4b4>EspañolTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_nl.html"Tb4b4b4>NederlandsTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_pl.html"Tb4b4b4>PolskiTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_pt-br.html"Tb4b4b4>PortuguêsTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_tr.html"Tb4b4b4>TürkçeTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_uk.html"Tb4b4b4>УкраїнськаTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_jp.html"Tb4b4b4>日本語Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"./crypto_zh-cn.html"Tb4b4b4>简体中文Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"top_menu"Tb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"index_zh-cn.html"Tb4b4b4>ReticulumTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"start_zh-cn.html"Tb4b4b4>开始使用Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"hardware_zh-cn.html"Tb4b4b4>硬件要求Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"connect_zh-cn.html"Tb4b4b4>连接Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"docs_zh-cn.html"Tb4b4b4>阅读手册Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"crypto_zh-cn.html"Tb4b4b4>密码学Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"credits_zh-cn.html"Tb4b4b4>致谢Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/markqvist/reticulum"Tb4b4b4>源代码Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> | Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"donate_zh-cn.html"Tb4b4b4>支持开发Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72centerTb4b4b4>
Tb4b4b4<Tff7b72h1Tb4b4b4>密码学原语Tb4b4b4<Tb4b4b4/Tff7b72h1Tb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Reticulum 使用了一系列高效、健壮、现代的密码学原语(cryptographic primitives)。它们都有着被广泛使用的现成的实现,且在一般的 CPU 或是微控制器上都可以运行。这些必要的原语是:Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72ulTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>Ed25519 用于签名Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>X22519 用于 ECDH 密钥交换Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>HKDF 用于密钥派生Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>AES-256 CBC 模式Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>HMAC-SHA256 用于消息认证Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>SHA-256Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>SHA-512Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>在默认安装下,Tb4b4b4<Tff7b72codeTb4b4b4>X25519Tb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4>、Tb4b4b4<Tff7b72codeTb4b4b4>Ed25519Tb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 和 Tb4b4b4<Tff7b72codeTb4b4b4>AES-256-CBCTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 都由 Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://www.openssl.org/"Tb4b4b4>OpenSSLTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> 提供(通过 Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/pyca/cryptography"Tb4b4b4>PyCA/cryptographyTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>)。散列函数 Tb4b4b4<Tff7b72codeTb4b4b4>SHA-256Tb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 和 Tb4b4b4<Tff7b72codeTb4b4b4>SHA-512Tb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 由 Python 标准库 Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://docs.python.org/3/library/hashlib.html"Tb4b4b4>hashlibTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4> 提供。Tb4b4b4<Tff7b72codeTb4b4b4>HKDFTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4>、Tb4b4b4<Tff7b72codeTb4b4b4>HMACTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4>、Tb4b4b4<Tff7b72codeTb4b4b4>TokenTb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 原语与 Tb4b4b4<Tff7b72codeTb4b4b4>PKCS7Tb4b4b4<Tb4b4b4/Tff7b72codeTb4b4b4> 填充函数总是由以下内部实现提供:Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72ulTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HKDF.py"Tb4b4b4>HKDF.pyTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/HMAC.py"Tb4b4b4>HMAC.pyTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/Token.py"Tb4b4b4>Token.pyTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tff7b72liTb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"https://github.com/markqvist/Reticulum/blob/master/RNS/Cryptography/PKCS7.py"Tb4b4b4>PKCS7.pyTb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Reticulum 还包含了所有所需密码学原语的纯 Python 实现。如果 OpenSSL 和 PyCA 在系统上不可用的话,Reticulum 会使用自带的纯 Python 实现。这时,最明显的影响是速度——OpenSSL作为后端会Tb4b4b4<Tff7b72emTb4b4b4>快的多Tb4b4b4<Tb4b4b4/Tff7b72emTb4b4b4>。然而最严重的后果可能是使用这些实现带来的安全性问题,毕竟它们没有经受过与 OpenSSL 同级别的安全审查、测试与评估。Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>如果你想使用自带的纯 Python 实现,我十分建议你先充分了解可能的风险,并仔细思考这些风险是否适用于你。Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72pTb4b4b4>Reticulum 目前还十分年轻,这一点必须牢记于心。虽说 Reticulum 的开发尽量遵守了密码学的最佳实践,但它Tb4b4b4<Tff7b72emTb4b4b4>还没有Tb4b4b4<Tb4b4b4/Tff7b72emTb4b4b4>受过外部的安全审计,而且很可能会有破坏隐私或是安全性的 Bug。如果你愿意帮忙,或是愿意赞助进行安全审计,欢迎联系开发者。Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tff7b72p Te6edf3alignTff7b72=Ta5d6ff"right"Tb4b4b4>Tb4b4b4<Tff7b72a Te6edf3hrefTff7b72=Ta5d6ff"credits_zh-cn.html"Tb4b4b4>下一个主题: 致谢与署名Tb4b4b4<Tb4b4b4/Tff7b72aTb4b4b4>Tb4b4b4<Tb4b4b4/Tff7b72pTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72bodyTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72htmlTb4b4b4>
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────